/***************************************************************************/
/* NOTE:                                                                   */
/* This document is copyright (c) by Oz Solomonovich.  All non-commercial  */
/* use is allowed, as long as this document not altered in any way, and    */
/* due credit is given.                                                    */
/***************************************************************************/

// ShellContextMenu.h : header file
//

#if !defined(AFX_SHELLCONTEXTMENU_H__24BAC666_2B03_11D3_B9C1_0000861DFCE7__INCLUDED_)
#define AFX_SHELLCONTEXTMENU_H__24BAC666_2B03_11D3_B9C1_0000861DFCE7__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class BCMenu;

//##ModelId=431C34C90232
class CShellContextMenu
{
	//##ModelId=431C34C90243
    LPCONTEXTMENU           m_lpcm;
	//##ModelId=431C34C90251
    CString                 m_cFullPath;
	//##ModelId=431C34C90252
    HWND                    m_hWnd;
	//##ModelId=431C34C90262
    BCMenu *                m_pSendToMenu;

public:    
	//##ModelId=431C34C90271
    CShellContextMenu(HWND m_hWnd, CString cFullPath);
	//##ModelId=431C34C90280
    ~CShellContextMenu();

	//##ModelId=431C34C90281
    bool IsMenuCommand(int iCmd) const;
	//##ModelId=431C34C9029F
    void InvokeCommand(int iCmd) const;

	//##ModelId=431C34C902A2
    void CShellContextMenu::SetMenu(BCMenu *pMenu, BCMenu *pMenu2);

protected:    
	//##ModelId=431C34C902BF
    void CShellContextMenu::FillSendToMenu(BCMenu *pMenu, 
        LPSHELLFOLDER pSF, UINT &idm);
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_SHELLCONTEXTMENU_H__24BAC666_2B03_11D3_B9C1_0000861DFCE7__INCLUDED_)
